/**
   
 
 
 
 
/***
正则表达式：
一、正则的内置对象Regexp对象支持正则表达式
	两种方式实力化Regexp
	a、字面量
	b、构造器
二、修饰符
	g:global全文搜索，不添加，只需要匹配到第一个为止。
    i:忽略大小写 eg:/\bis\b/gi,全局忽略大小写
三、基本字符类型
	原义文本字符和元字符
	1、元字符是非字母字符，在正则表达式中具有特殊含义
	  比如 * + ？$ ^ . | \ ( ) { } [ ]
	2、字符类：
		a、可以使用元字符[]来构建一个简单的类，所谓的类是指符合一些特征的集合的对象,
		   是一个泛指，而不是特指某个字符，
		   eg:利用元字符中括号([]),表达式[abc]把a,b,c归为一类，表达式可以匹配这类的字符，表示匹配a或者b或者c这三个字符。
		   "a111b222c333".replace("/[abc]/g","X") 结果为 X111X222X333,表示把字符串"a111b222c333"中所有包含a,b,c的字符替换为X
		b、字符类取反
		   使用元字符 ^ 创建反向类/负向类，表示不属于某类的类型。
		   eg:[^abc]表示不是字符a,b,c的内容。
		   "a111b222c333".replace(/[^abc]/g,"X")表示把不是字符a,b,c的内容替换为X
	3、范围类 []
		匹配某一个范围的字符
		eg:[a-z]表示从a到z的任意字符，这个是一个闭区间包含a和z本身,横杠表示一个范围。
		"a111b222c33d3efg".replace(/[a-z]/g,"X")表示的是把a到z的字符全部替换X。
		"a111b222c33d3EWefgARZZZ".replace(/[a-zA-Z]/g,"X")表示的是把不区分大小写的a到z的字符全部替换X。
		如果要匹配一个"-"，可以在字符类中匹配一个"-"字符。如/[a-z-]/表示的是匹配a到z和“-”字符。
	4、预定义类
		预定义类来匹配常见的字符类
		a、"."等价于[^\r\n]:除了回车符和换行符之外的所有字符
		b、\d等价于[0-9]:数字字符
		c、\D等价于[^0-9]:非数字字符
		d、\s等价于[\t\n\x0B\f\r]:空白符
		e、\S等价于[^\t\n\x0B\f\r]:非空白符
		f、\w等价于[a-zA-Z_0-9]:大小写单词、下划线、单词
		g、\W等价于[^a-zA-Z_0-9]:非单词字符
	5、边界
		^ :以xxx开始,注意没有在中括号中，就不是取反的意思，是以什么开始,书写的是写在最前面
		$ :以xxx结束。书写的时候写在最后面
		\b :单词边界
		\B :非单词边界
		eg:"hi,This is boy".replace(/\bis\b/g,"99")表示匹配一个完整的单词is
	6、量词 ? 
	   a、出现的次数
		?:表示0次或者1次（最多出现一次）
		+:出现一次或者多次（至少一次）
		*:出现0次或者多次（任意次）
		{n}:出现n次
		{n,m}:出现n到m次
		{n,}:至少出现n次
	   b、贪婪模式和非贪婪模式
	     贪婪模式：正则表达式默认为贪婪模式，正则表达式一般是最大长度匹配，尽可能多的匹配。eg "123456789".replace(/\d{4,6}/g,"X"),=>"X789"最大匹配数字长度为6
		 非贪婪模式：在整个表达式匹配成功的前提下，尽可能少的匹配，在量词的后面加上？。eg:"123456789".replace(/\d{4,6}?/g,"X"),=>"XX9"按最小的匹配长度4进行匹配
	7、分组 （）
		使用（）(小括号)进行分组，使量词作用与分组
		eg:'123aa1a2b3c4d5'.replace(/([a-z]\d){4}/g,"X");
		  =>'123aXd5',表示将[a-z]\d的规则进行匹配，匹配的次数为4次，将匹配到的进行替换为"X"
	8、或 |
		匹配多个项
		eg:/aa|bb/.test("aa")=>true
		配合分组使用
		eg:/ab(c|d)ef/.test("abcef")=>true
		eg:/ab(c|d)ef/.test("abdef")=>true
	9、
		
***/

/**
 * eg：字面量的方式
   let reg=/\bis\b/;
   说明：
   1、字面量实例化的方式以 "/"开始，以"/"结尾，
   2、以\b开始和结尾中间表示匹配字符串
   3、例子意思：匹配一个字符串是is的文本
 **/
let reg = /\bis\b/gi;
let str = "this is kkk Is kkd".replace(reg, "IS");
console.log(str);
